Many types of error prevention coding (or error hardening) exist. Turbo encoding is a popular type of error prevention encoding that is used in the cellular telecommunications arena. Signals that are turbo encoded at a transmission site are then subjected to turbo decoding at the place where they are received. The error protection scheme composed of turbo encoding and turbo decoding is well known in the digital communications field. For example, see section 8.2.10 “Parallel and Serial Concatenated Convolutional Codes” in “Digital Communications” by John G. Proakis, 4th Edition, 2001, McGraw-Hill.
Turbo decoding is performed iteratively on a turbo encoded block of received data until the decoding is “successful”. That is to say, until such time as the decoded version of the block is adjudged to be a sufficiently accurate facsimile of the block that was turbo encoded and transmitted. Typically, a turbo decoder is constrained to performing a maximum number of turbo decoding iterations on a block of turbo encoded received data before giving up on the block as improperly received. This limitation serves to control the time, processing effort and energy that is devoted to the attempt that is made to decode a given block of received turbo encoded data and this has obvious benefits in the context of a device, such as a mobile telephone, that is constrained in terms of its processing resources and energy supply.
The UMTS standards specify a high data rate mode of communication known as HSDPA. According to the HSDPA scheme, a transmitter transmits packets of data to a receiver. These packets contain a series of blocks of data, which represent the data payload of the packet. For example, the payload might be a segment of a movie clip or an element of a web page that is to be presented on the receiving device. Within an HSDPA packet, the data blocks are individually subjected to turbo encoding. This means that a receiver, upon acquiring an HSDPA packet, must turbo decode all of the blocks in the packet. If a receiver fails to turbo decode a block within an HSDPA packet, then the receiver requests a retransmission of the packet that contains the failed block.
FIG. 1 shows schematically a series of received HSDPA packets. In FIG. 1, three consecutive packets are shown, labelled PACKET 1, PACKET 2 and PACKET 3. In the example shown in FIG. 1, each of the packets contains N turbo encoded blocks of data. It should be noted that, in practice, the packets need not be transmitted contiguously in as much as there may be delays between the transmission of a packet following the completion of the transmission of an earlier packet. Additionally, the number of blocks within a packet may vary from one packet to another.
In a typical turbo decoder design, the turbo decoder will apply a fixed budget of turbo decoding iterations to each block that it receives and, in the context of HSDPA, will attempt to decode each block from the packets that it receives.